/*********************************************************************
 *  Nome : Bruno Ferrero                             N.USP 3690142
 *  Nome : Mariana Pacheco Hatamura                  N.USP 4906967 
 *  Nome : Tiago Nicolosi Bomventi                   N.USP 3690177 
 *  Curso: BCC                                 Disciplina: MAC 211
 *  Data : 5/5/2010                       Exercic. Projeto(parte 1)
 *  Compilador utilizado : gcc versao 4.1.2
 *  ******************************************************************/

/*define as estruturas de dados de cada elemento do jogo*/

/*valores de tipo*/
#define AGUA '.'
#define NAUFRAGO '@'
#define CORAL '#'
#define COLISAO ']'

#define MAX_NAUFRAGOS 100             /*numero maximo de nafragos permitidos no jogo*/
#define NEAREST(A) ((int) (A + 0.5f)) /*arredonda o float A para o inteiro mais proximo*/

/*estruturas e variaveis*/
struct node { 
    char livre;
    float posx;
    float posy;
    float nextx;
    float nexty;
    float vx;
    float vy;
    float nextVx;
    float nextVy;
}; 
typedef struct node naufrago;

/*funcoes*/
int numNaufragosNoVetor (void);
int criaNaufrago (float posx, float posy, float vx, float vy);
void removeNaufrago (naufrago * passageiro);
void inicializaVetorNaufragos (void);
void setNaufragoPosicao (naufrago *passageiro, float posx, float posy);
void setNaufragoVelocidade (naufrago *passageiro, float vx, float vy);
void getNaufragoPosVel (naufrago *passageiro, float *posx, float *posy, float *vx, float *vy);
void setNaufragoNextPosicao (naufrago *passageiro, float nextPosx, float nextPosy);
void setNaufragoNextVelocidade (naufrago *passageiro, float nextVx, float nextVy);
void getNaufragoNextPosVel (naufrago *passageiro, float *nextPosx, float *nextPosy, float *nextVx, float *nextVy);
naufrago * getNaufrago (int posi, int posj);
naufrago * nextNaufrago (void);
